Extending behavioral test models with symbolic data
نویسندگان
چکیده
Model-based testing is a technique to automatically generate test cases and oracles in order to test an implementation. A typical behavioral model used for model-based testing is a Labeled Transition System (LTS). However creating the LTS models needed for testing is a complex task, and especially when data is involved the number of states and thus the complexity will explode fast. Incorporating data in an LTS leads to a Symbolic Transitions System (STS), where data is stored in variables and actions have guards and updates. The result is that the number of states is reduced and the complexity is moved to the update rules and guards. In order to simplify the construction of STS an algorithm is presented that is capable of extracting data from an implementation and enriching the LTS model in order to form an STS. A domain expert can than inspect the model for possible faults and in the future the model can be used for regression testing of the implementation.
منابع مشابه
Finding Errors in Python Programs Using Dynamic Symbolic Execution
For statically typed languages, dynamic symbolic execution (also called concolic testing) is a mature approach to automated test generation. However, extending it to dynamic languages presents several challenges. Complex semantics, fragmented and incomplete type information, and calls to foreign functions lacking precise models make symbolic execution difficult. We propose a symbolic execution ...
متن کاملTesting the IPC Protocol for a Real-Time Operating System
In this paper, we adapt model-based testing techniques to concurrent code, namely for test generations of an (industrial) OS kernel called PikeOS. Since our data-models are complex, the problem is out of reach of conventional model-checking techniques. Our solution is based on symbolic execution implemented inside the interactive theorem proving environment Isabelle/HOL extended by a plugin wit...
متن کامل-Lexicase Selection for Regression
Lexicase selection is a parent selection method that considers test cases separately, rather than in aggregate, when performing parent selection. It performs well in discrete error spaces but not on the continuous-valued problems that compose most system identification tasks. In this paper, we develop a new form of lexicase selection for symbolic regression, named -lexicase selection, that rede...
متن کاملHigher-order symbolic execution for contract verification and refutation
We present a new approach to automated reasoning about higher-order programs by endowing symbolic execution with a notion of higher-order, symbolic values. To validate our approach, we use it to develop and evaluate a system for verifying and refuting behavioral software contracts of components in a functional language, which we call soft contract verification. In doing so, we discover a mutual...
متن کاملTechniques for Improving Test-Driven Design
Early test development and specification enhance the quality and robustness of software as experience with new agile software development methods shows. The methods propagate test-first techniques and early prototyping through executable design models. For UML, Model-Driven Architecture is oriented towards executable models. Several authors propose scenarios specified by sequence diagrams as te...
متن کامل